# Created with PyCharm.
# Coding UTF-8
# @Version Python 3.8

# @author GeekChunky
# @Email caiyoupeng00@outlook.com

# @Date 2021/12/04
# @CreatTime 14:43


'''
Documentation comments:
'''

# Now Write Down Your Python Code in Editor...
# Wish You Happy Everyday !

# 测试数据：
# 金士顿	test90
# 英业达	test91
# 联想拯救者	test92
# 彩虹桥	test93
# 步骤1：新建csv格式的测试数据，并编写脚本读取csv中的测试数据。

from selenium.webdriver.common.by import By
from time import sleep
# 步骤2：
# 1、从Selenium中引入WebDriver；
from selenium import webdriver
# 2、引入unittest；
import unittest
# 3、引入ddt；
from ddt import ddt, unpack, data
# 4、引入步骤1中的数据读取的方法
import csv

brand_document = open('demo3.csv', 'r', encoding='UTF-8')
brand_data = csv.reader(brand_document)
# 5、使用Selenium模块的WebDriver打开谷歌浏览器；
driver = webdriver.Edge(r'C:\Users\caiyo\AppData\Local\Programs\Python\Python38\BroswerDriver\msedgedriver.exe')
# driver.maximize_window()
# 6、在谷歌浏览器中通过get方法发送网址打开资产管理系统登录页面；
driver.get('http://192.168.1.251/bsams')
# 7、增加智能时间等待30秒；
driver.implicitly_wait(30)
# 8、查看登录页面中的用户名输入框元素，通过xpath属性定位用户名输入框，并输入用户名sysadmin；
driver.find_element(By.XPATH, '//*[@id="taskId"]').send_keys('719')
# 9、查看登录页面中的密码输入框元素，通过css_selector属性定位密码输入框，并输入密码SysAdmin123；
driver.find_element(By.CSS_SELECTOR, '#loginName').send_keys('xg01')
driver.find_element(By.CSS_SELECTOR, '#password').send_keys('xg01')
driver.find_element(By.CSS_SELECTOR, '#vericode').send_keys('shtd')
# 10、查看登录页面中的登录按钮元素，通过class_name方法定位登录按钮，使用click()方法点击登录按钮进入资产管理系统首页；
driver.find_element(By.CLASS_NAME, 'dl-button').click()
# 11、在资产管理系统首页查看左侧品牌按钮元素，通过link_text方法进行定位，使用click()方法点击品牌按钮进入品牌页面；
driver.find_element_by_link_text('品牌').click()


# 13、通过untest+数据驱动输入品牌名称和品牌说明并点击保存按钮。
@ddt
class test_add(unittest.TestCase):
    @unpack
    @data(*brand_data)
    def test_pinpai(self, a, b):
        # 12、在品牌页面通过xpath方法点击新增按钮；
        driver.find_element_by_xpath('/html/body/div[2]/div/div[2]/div[2]/div[1]/div/input').click()
        driver.find_element_by_xpath('//*[@id="title"]').send_keys(a)
        driver.find_element_by_xpath('//*[@id="code"]').send_keys(b)
        driver.find_element_by_xpath('//*[@id="cboxLoadedContent"]/div/div[3]/a[2]').click()
        sleep(1)
        driver.switch_to_alert().accept()

    @classmethod
    def tearDownClass(cls):
        brand_document.close()
        driver.find_element_by_xpath('/html/body/div[1]/div/div[3]/a').click()
        driver.quit()


if __name__ == '__main__':
    unittest.main()
